package com.moji.util;

import com.baomidou.mybatisplus.extension.api.IErrorCode;

/**
 * 自定义状态码
 * @author mengyangguang
 * @date 2023/3/7 9:20
 */

public enum ResultCode implements IErrorCode {
	/**
     * 失败
     */
    FAILED(-1, "失败"),
    /**
     * 成功
     */
    SUCCESS(1, "成功"),
    /**
     * token不能为空
     */
    TOKEN_IS_NULL(2, "Token不能为空"),
    /**
     * token已过期
     */
    TOKEN_IS_EXPIRE(3, "Token已过期"),
    /**
     * token错误
     */
    TOKEN_IS_ERROR(4, "Token错误"),
	/**
	 *无router
	 */
	ROUTER_IS_NULL(99, "查无此router"),
    /**
     * 参数为空
     */
	PARAMS_IS_NULL(10001, "参数为空"),
	/**
	 * 参数不全
	 */
	PARAMS_NOT_COMPLETE(10002, "参数不全"),
	/**
	 * 参数类型错误
	 */
	PARAMS_TYPE_ERROR(1003, "参数类型错误"),
	/**
	 * 启用状态不能删除
	 */
	PLATFORM_ON_NOT_DELETE(10004,"启用状态不能删除"),
	/**
	 * 记录不存在无效
	 */
	TOP_MENU_NOT_DELETE(10005,"顶级菜单不能删除"),
	/**
	 * 用户不存在
	 */
	USER_NOT_EXIST(20001, "用户不存在"),

	/**
	 * 用户未登陆
	 */
	USER_NOT_LOGGED_IN(20002, "用户未登陆"),
	/**
	 * 用户名或密码错误
	 */
	USER_ACCOUNT_ERROR(20003, "用户名或密码错误"),
	/**
	 * 用户账户已被禁用
	 */
	USER_ACCOUNT_FORBIDDEN(20004, "用户账户已被禁用"),
	/**
	 * 用户已存在
	 */
	USER_HAS_EXIST(20005, "用户已存在"),

	/**
	 *原密码输入错误
	 */
	USER_OLD_PASSWORD_ERROR(20006,"原密码输入错误"),

	/**
	 *手机号码格式不合法
	 */
	PARAMS_USER_MOBILE_LEGAL(20007,"手机号码格式不合法"),
	/**
	 *邮箱格式不合法
	 */
	PARAMS_USER_EMAIL_LEGAL(20008,"邮箱格式不合法"),
	/**
	 *登录账号不能为空
	 */
	PARAMS_LOGINID_IS_NULL(20009,"登录账号不能为空"),
	/**
	 *登录密码不能为空
	 */
	PARAMS_PASSWORD_IS_NULL(20010,"登录密码不能为空"),
	/**
	 *姓名不能为空
	 */
	PARAMS_NAME_IS_NULL(20011,"姓名不能为空"),

	/**
	 * 系统业务出现问题
	 */
	BUSINESS_ERROR(30001, "系统业务出现问题"),
	/**
	 *被用户引用的角色不可删除
	 */
	PLATFORM_USER_ROLE_NOT_DELETE(40001,"被用户引用的角色不可删除"),
	/**
	 * 系统内部接口调用异常
	 */
	INTERFACE_INNER_INVOKE_ERROR(60001, "系统内部接口调用异常"),
	/**
	 * 系统外部接口调用异常
	 */
	INTERFACE_OUTER_INVOKE_ERROR(60002, "系统外部接口调用异常"),
	/**
	 * 接口禁止访问
	 */
	INTERFACE_FORBIDDEN(60003,"接口禁止访问"),
	/**
	 * 接口地址无效
	 */
	INTERFACE_ADDRESS_INVALID(60004, "接口地址无效"),
	/**
	 * 接口请求超时
	 */
	INTERFACE_REQUEST_TIMEOUT(60005, "接口请求超时"),
	/**
	 * 没有访问权限
	 */
	PERMISSION_NO_ACCESS(60006, "没有访问权限"),
	/**
	 * 规则引擎执行失败
	 */
	DROOLS_EXECUTE_FAIL(70001, "规则引擎执行失败"),

	/**
	 * 企业用户未认证
	 */
	AUTH_NOT_EXIST(80000, "企业信息未认证"),

	/**
	 * 企业用户信息认证中
	 */
	AUTH_CHECK_PENDING(80001, "企业信息认证审核中，请耐心等待"),

	/**
	 * 企业信息认证失败
	 */
	AUTH_FAILED(80003, "企业信息认证失败，请重新认证"),

	/**
	 * 企业信息认证被驳回
	 */
	AUTH_BACK(80004, "企业信息认证被驳回，请联系相关人员"),

	PRODUCT_APPLY_REFUSED(90000, "目前你们不能申请该产品"),

	PRODUCT_IS_APPLYING(90001, "该类产品正在申请中"),

	CREDIT_NOT_EXIST(100001, "未授信"),

	CREDIT_NOT_IN_TIME(100002, "不在授信期限内"),

	CREDIT_ACCOUNT_NOT_ENOUGH(100004, "授信可用额度不足"),
	/**
	 * 身份证号校验错误
	 */
	ID_NUMBER_VERIFICATION_ERROR(100005,"身份证号校验错误,请重新输入"),
	/**
	 * 业务字典 预约单相关
	 */
	/**
	 * 预约单信息在系统中不存在
	 */
	RESERVATION_ENTRY_NOT_EXIST(110001, "预约单信息在系统中不存在"),

	/**
	 * 预约单信息在系统中已经存在
	 */
	RESERVATION_ENTRY_YES_EXIST(110002, "预约单信息在系统中已经存在"),

	/**
	 * 预约单下单数据量与实际录入数量不一致
	 */
	RESERVATION_ENTRY_NUM_MISMATCH(110003, "预约单下单数据量与实际录入数量不一致"),
	/**
	 * 预约单下单过磅重量与实际录入过磅重量不一致
	 */
	RESERVATION_ENTRY_WEIGHT_MISMATCH(110004, "预约单下单过磅重量与实际录入过磅重量不一致"),
	/**
	 * 预约单下单单号与关联单号不一致
	 */
	RESERVATION_ENTRY_APPOINTMENT_FORM_MISMATCH(110005, "预约单下单单号与关联单号不一致"),
	/**
	 * 预约单下单计量方式与关联单号计量方式不一致
	 */
	RESERVATION_APPOINTMENT_MEASUREMENT_METHOD_MISMATCH(110006,"预约单下单计量方式与关联单号计量方式不一致"),
	/**
	 * 预约单下单计量总数与关联单号录入总数不一致
	 */
	RESERVATION_APPOINTMENT_TOTAL_COUNT_METHOD_MISMATCH(110007,"预约单下单计量总数与关联单号录入总数不一致"),
	/**
	 * 预约单下单重量总数与关联单号录入总重量不一致
	 */
	RESERVATION_APPOINTMENT_TOTAL_WEIGHT_METHOD_MISMATCH(110008,"预约单下单重量总数与关联单号录入总重量不一致"),
	/**
	 * 该RFID信息绑定的入库信息已经存在
	 */
	RFID_STORAGE_IS_EXIST(110009, "该RFID信息绑定的入库信息已经存在"),
	/**
	 * 预约单信息未审核通过
	 */
	RESERVATION_ENTRY_AUDIT_NOT_SUCCESS(1100010, "预约单信息未审核通过"),
	/**
	 * 预约单信息已经审核通过
	 */
	RESERVATION_ENTRY_AUDIT_YES_SUCCESS(1100011, "预约单信息已经审核通过"),
	/**
	 * 录入信息已在系统中存在，请修改后再操作
	 */
	WMS_WAREHOUSE_DATA_DULP_YES_EXIST(1100012, "录入信息已在系统中存在，请修改后再操作"),
	/**
	 * 预约单号在入库单中已存在
	 */
	WMS_PRESERVE_MATERIAL_WAREHOUSE_RESERVATION_ENTRY_EXIST(1100013,"预约单号在入库单中已存在"),
	/**
	 * 出库单录入数量已超过最大剩余数量
	 */
	WMS_WAREHOUSE_OUT_QUANTITY_COUNT_ABOVE_IN_COUNT(1100014,"出库单录入数量已超过最大剩余数量"),
	/**
	 * 出库单录入重量已超过最大剩余重量
	 */
	WMS_WAREHOUSE_OUT_WEIGHT_COUNT_ABOVE_IN_COUNT(1100015,"出库单录入重量已超过最大剩余重量"),
	/**
	 * 该入库单对应的入库单详情不存在
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_NOT_EXISTS(1100016,"该入库单对应的入库单详情不存在"),

	/**
	 * 入库预约单数量未填写
	 */
	WMS_APPOINT_FROM_PRODUCT_QUANTITY_IS_NULL(1100017,"入库预约单数量未填写"),
	/**
	 * 入库预约单理计重量未填写
	 */
	WMS_APPOINT_FROM_PRODUCT_ACCOUNTING_WEIGHT_IS_NULL(1100018,"入库预约单理计重量未填写"),

	/**
	 * 入库预约单过磅重量未填写
	 */
	WMS_APPOINT_FROM_PRODUCT_WEIGH_WEIGHT_IS_NULL(1100019,"入库预约单过磅重量未填写"),
	/**
	 *  大类信息
	 */
	/**
	 * 该品名及CODE已经在系统里存在,请修改后重试
	 */
	WMS_MAIN_CATEGORY_SYSTEM_YES_EXIST(120001, "该品名及CODE已经在系统里存在,请修改后重试"),

	/**
	 * 理记系数
	 */
	WMS_THEORY_FORMULA_NAME_YES_EXIST(130001,"该理计公式名称已经存在"),
	/**
	 * 该物资编码已存在理计系数
	 */
	WMS_TALLY_COEFFICIENT_GOOD_CODE_YES_EXIST(130002,"已经存在对应系数"),
	/**
	 * 参数中物资编码不存在
	 */
	WMS_GOOD_CODE_IS_NULL(130003,"参数中物资编码不存在"),

	/**
	 * 参数中物资系数不存在
	 */
	WMS_TALLY_COEFFIC_WEIGHT_IS_NULL(130004,"参数中物资系数不存在"),

	/**
	 * 参数中物资系数不存在
	 */
	WMS_TALLY_COEFFIC_REQUEST_PARAM_IS_NULL(130005,"参数中必填参数为空"),
	/**
	 * 入库相关
	 */
	WMS_INVENTORY_DATA_NO_EXIST(140001,"信息在系统中未查到"),
	/**
	 * 信息在系统中已经存在
	 */
	WMS_INVENTORY_DATA_YES_EXIST(140002,"信息在系统中已经存在"),
	/**
	 * 入库单详情信息在系统中未查到
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_DOCUMENT_NO_NOT_EXISTS(140003,"入库单详情信息在系统中未查到"),
	/**
	 * 入库单详情列表数量不大于2
	 */
	WMS_DETAIL_PRIVARY_KEY_COUNT_IS_NOT_GREATER2(140004,"入库单详情列表数量不大于2"),
	/**
	 * 入库单详情预约单号不相等
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_DOCUMENT_NO_EQUALS(140005,"入库单详情预约单号不相等"),
	/**
	 * 入库单详情预约单号为空
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_DOCUMENT_NO_IS_NULL(140006,"入库单详情预约单号为空"),
	/**
	 * 入库单详情仓库编码为空
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_WAREHOUSE_CODE_IS_NULL(140007,"入库单详情仓库编码为空"),
	/**
	 * 入库单详情仓库编码不相等
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_WAREHOUSE_CODE_NO_EQUALS(140008,"入库单详情仓库编码不相等"),
	/**
	 * 入库单详情货主为空
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_OWNER_CARGO_NAME_IS_NULL(140009,"入库单详情货主为空"),
	/**
	 * 入库单详情货主不相等
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_OWNER_CARGO_NAME_NO_EQUALS(140010,"入库单详情货主不相等"),
	/**
	 * 入库单详情仓库库位编码为空
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_WAREHOUSE_LOCATION_CODE_IS_NULL(140011,"入库单详情仓库库位编码为空"),
	/**
	 * 入库单详情仓库库位编码不相等
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_WAREHOUSE_LOCATION_CODE_NO_EQUALS(140012,"入库单详情仓库库位编码不相等"),
	/**
	 * 入库单详情物资编码为空
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_GOODS_CODE_IS_NULL(140013,"入库单详情物资编码为空"),
	/**
	 * 入库单详情物资编码不相等
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_GOODS_CODE_NO_EQUALS(140014,"入库单详情物资编码不相等"),
	/**
	 * 该物资列表不存在
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_LIST_NOT_EXISTS(140015,"该物资列表不存在"),
	/**
	 * 该预约单已经完成入库操作
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_STATUS_IS_ALL(140016,"该预约单已经完成入库操作"),
	/**
	 * 该入库单号不允许再进行入库操作
	 */
	WMS_PRESERVE_DETAIL_NO_NOT_ALLOW_IN(140017,"该入库单号不允许再进行入库操作"),
	/**
	 * 入库单号数量、重量大于入库预约单号数量、重量
	 */
	WMS_PRESERVE_DETAIL_GREATER_NO_NOT_ALLOW_IN(140018,"入库单号数量、重量大于入库预约单号数量、重量"),

	/**
	 * 入库操作中标签类型参数为空
	 */
	WMS_PRESERVE_MATERIALS_DETAIL_LABEL_TYPE_IS_NULL(140019,"入库操作中标签类型参数为空"),
	/**
	 * 入库单物资在预约单中物资列表不存在
	 */
	WMS_PRESERVE_TALL_GOOD_CODE_IS_NOT_EXISTS(140020,"入库单物资在预约单中物资列表不存在"),

	/**
	 /* 信息在系统中未查到
	 */
	WMS_WAREHOUSE_DATA_NO_EXIST(150001,"信息在系统中未查到"),
	/**
	 * 入库单号未找到
	 */
	WMS_WAREHOUSE_ENTRY_NO_EXIST(150002,"入库单号未找到"),
	/**
	 * 该仓库不存在该库位信息
	 */
	WMS_WAREHOUSE_NO_EXIST_LOCATION_NAME(150003,"该仓库不存在该库位信息"),

	/**
	 * 出库预约单已经存在
	 */
	WMS_WMS_WAREHOUSE_OUT_ORDER_DOCUMENT_NO_IS_EXIST(150004,"出库预约单号已存在"),

	//审批配置
	/**
	 * 预约单正在审批中，禁止删除
	 */
	WMS_APPOINTMENT_DOCUMENT_APPROVAL_IS_RUN(160001,"该预约单禁止操作")
	;


	private final long code;
	private final String msg;
	
	ResultCode(long code, String msg) {
		this.code = code;
		this.msg = msg;
	}

	public long getCode() {
		return code;
	}


	public String getMsg() {
		return msg;
	}


	@Override
	public String toString() {
		return String.format(" ErrorCode:{code=%s, msg=%s} ", code, msg);
	}
}
